• 提交需求
    *
    *

    *
    *
    *
    立即提交
    点击”立即提交”,表明我理解并同意 《黄金城科技隐私条款》

    logo

      产品与服务
      解决方案
      技术支持
      合作发展
      关于黄金城

      申请试用
        《入侵生命周期细分实践指南系列》:计划任务攻击
        发布时间:2022-06-17 作者:黄金城科技黄金城官网实验室 阅读次数: 862 次

        黄金城科技为了更好地进行入侵检测和防御,参照各种黄金城官网威胁框架和自身的实践与思考,提出了基于入侵生命周期的攻击管理模型,作为黄金城新一代黄金城官网架构的三大支柱之一。

        入侵生命周期v1.0把入侵过程划分为7个阶段:探索发现、入侵和感染、探索感知、传播、持久化、攻击和利用、恢复。入侵生命周期v1.0同样以ATT&CK作为基本战术知识库,匹配到不同的入侵阶段。需要注意的是,并非所有的入侵都会经历这7个阶段,也没有绝对的线性次序。

        1)探索发现

        在这个阶段中,攻击者会先锁定攻击对象,然后利用某些技术手段,尽可能多地获取目标暴露出来的信息,如通过端口扫描、指纹探测等方式,发现敏感端口及版本信息,进而寻找攻击点,为下一步入侵做准备。

        2)入侵和感染

        在这个阶段,攻击者会根据“探索发现”阶段所发现的重要信息,来对目标暴露出的攻击面进行攻击尝试,在“探索发现”阶段收集到的信息越多,攻击对象所暴露的攻击面也就越多,攻击更易成功。

        3)探索感知

        攻击者在成功进入系统内部后,由于是首次进入所以会出现对内部环境不熟悉的情况,这时攻击者的动作一般会是对当前所处环境进行探索,摸清内部大致的网络结构,常常伴随着被入侵本机的敏感信息收集以及对内网大量的端口进行扫描,后续根据攻击者的目的进行下一步操作。

        4)传播

        在此阶段,攻击者根据上一阶段在内网探索感知收集到的信息,选择特定的攻击手法。如若发现内部是域环境,攻击者可能会尝试先攻破域控服务器,再传播其他机器。若是工作组环境,可能会利用收集到的端口和服务信息,选择特定漏洞进行批量扫描攻击,来尽可能多地继续获得其他计算机的控制权。

        5)持久化

        攻击者在对资产进行恶意操作后,为了能够减少再次连接的攻击成本,方便下次进入,会进行“留后门”的操作,常见的后门如:建立计划任务,定时连接远程服务器;设置开机启动程序,在每次开机时触发执行特定恶意程序;新建系统管理员账号等。这样便于攻击者下次快速登录并控制该系统。

        6)攻击和利用

        攻击者在此阶段便会开始对目标资产进行恶意操作,按照攻击者意愿,对能利用的数据进行窃取、利用;对操作系统、敏感文件进行破坏、删除。所有的防御手段都应该极力阻止攻击者进行到这一阶段。

        7)恢复

        攻击者在执行所有的攻击操作时,往往会在系统上留下大量的行为日志,因此在这一阶段,攻击者会对记录自身痕迹的所有日志进行处理,或删除或混淆,从而消灭证据,逃避追踪。



        本系列文章基于黄金城科技入侵生命周期1.0架构,细分各阶段攻击者的常用攻击手段,并对相关攻击手段的具体实施方式进行逐一剖析,为黄金城官网防御建设提供有力知识补充和反制准备。




          计划任务攻击(持久化


        计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划可以在每次系统启动的时候自启动并在后台运行。通常当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。
        而在攻击者攻破某台机器之后,为了防止会话中断而失去机器的控制权限,常常会通过计划任务的手段来维持自身的权限。在Windows系统中,常通过at/schtasks方式进行计划任务设置。


        从攻击行为链条的上下文来看,针对计划任务攻击的行为链条输入输出如下:



        输入:被攻击机IP、登录凭证(账号密码)

        输出:服务器的文件、命令执行后的回显



        Windows和Linux利用计划任务的方式有所不同。具体演示如下

        1.Windows使用at/schtasks配置计划任务

        首先通过net use建立ipc通道。经测试,ipc通道使用445端口

        连接

        netuse \\192.168.96.218\admin$ /user:sojrs 123456  

        查看远程主机时间

        nettime \\192.168.96.218

        通过at方式设置计划任务,注意在新版本系统at已不支持,已通过schtasks进行设置

        at\\192.168.96.218 17:00 "calc.exe": 当天下午5点运行calc.exe  

        at\\192.168.96.218 17:00 /every:5,10,15 "calc.exe" : 每月的5,10,15号下午17点启动计算器  

        注:通过at命令运行的计划任务,你在任务栏里面无法看到相关进程,但你通过wmic process get Name 或者tasklist能看到


        利用schtasks方式,同样要先通过net use 建立ipc连接,利用schtashs设置计划任务

        创建任务

        schtasks/create /s 192.168.1.102 /u “administrator” /p “123!@#” /RL HIGHEST /tn windowsupdate /tr C:\\Windows\temp\1.bat /sc DAILY /mo 1 /ST 19:30

        启用相关任务名

        schtasks/run /tn windowsupdate /s 192.168.1.102 /u “administrator” /p “123!@#”

        其中,RL表示作业级别,一般设置最高,为HIGHEST,tn是任务名称,tr是运行程序路径,sc表示时间间隔,DAILY表示以天为间隔,mo为执行周期,这里设置成了1天1次

        删除相关计划任务

        schtasks/delete /tn windowsupdate /s 192.168.1.102 /u “administrator” /p "123!@#" 

        注:这里RL表示设置的执行权限,如果是HIGHEST,则会以system权限进行执行,因此也经常会通过这种手段进行提权

        2.Linux计划任务

        Linux的计划任务主要是通过特定的命令格式写入配置文件中,具体涉及到的文件和目录如下

        涉及到的文件

        /etc/crontab

        涉及到的目录

        /var/spool/anacron

        /var/spool/cron

        /etc/cron.d/

        /etc/cron.hourly/

        /etc/cron.daily/

        /etc/cron.monthly/

        /etc/cron.weekly/

        一般来说里面主要是这个格式,可以直接编辑/var/spool/cron等文件或者crontab -e

        分时 日 月 星期 执行命令  

        ** * * * echo "111" : 表示每分钟打印一次  

        根据利用手段来看,主要涉及到的动作为添加计划任务到系统中,存在两种情况,一种为登录服务器后添加计划任务,另一种为远程通过ipc通道添加计划任务

        1.当通过本地登录后cmd命令配置计划任务时

        这个动作涉及到的身份、资产、行为如下

        身份:登录凭证、cmd.exe

        资产:计划任务资源

        行为:创建计划任务、以及计划任务触发后要调用的资源。如黑客使用cmd.exe调用schtasks.exe,执行schtasks /create /RL HIGHEST /tn test /tr c:\\windows\system32\calc.exe /sc DAILY /mo 1 /ST 13:00 这个命令

        同时会在windows目录下新建该计划任务名的文件

        2.当通过计划任务配置面板添加计划任务时

        这个动作涉及到的身份、资产、行为如下:

        身份:登录凭证、远程登录IP

        资产:explorer.exe、cmd.exe、taskschd.msc、C:\Windows\System32\Tasks访问权限

        行为:手工打开计划任务程序(taskschd.msc),并添加计划任务

        该动作首先会通过explorer.exe程序调用taskschd.msc,然后再去调用C:\Windows\System32\mmc.exe的资源,从表现来说,相比于通过cmd.exe创建计划来说,更符合普通用户的操作规范。

        3.当登录在Linux中创建计划任务并执行时

        这个动作涉及到的身份、资产、行为如下

        身份:登录凭证、登录IP

        资产:计划任务的文件,如/var/spool/cron/crontabs/,对应账户名下为计划任务文件,可用crontab -l查看计划任务

        行为:crontab -e 创建计划任务

        这里我们通过crontab -e 创建计划任务,查看相关进程树


        该行为为常见创建计划任务的动作

        crontab -l 可查看具体的计划任务

        当计划任务被执行时,查看相关进程树可知

        计划任务将要执行的程序父进程为cron。

        免费试用
        服务热线

        马上咨询

        400-811-3777

        回到顶部
        【网站地图】【sitemap】